#ifndef SWITCHINGSINGLESUNITTESTS_H
#define SWITCHINGSINGLESUNITTESTS_H

#include "stdafx.h"
#include "TestUtils.h"
#include "SwitchVerticesAlgorithm.h"
#include <cstdlib>


void PutVertexInGroup(bool* vertexNameInts, Graph *graph, Group *group, int n);

// Create a graph and a chain with no groups and try to create a new group
TestUtils::TestResult FillEmptyChain(); 

// Create a graph and a chain with 1 group with 1 vertex in in and try to create a new group
TestUtils::TestResult FillOneGroupOneVertexWithSwitching();

// Run fillemptychain and then run another iteration
TestUtils::TestResult Run2IterationsOfSwitchingStartingFromEmpty();

// Divide the whole graph into groups and run algorithm
TestUtils::TestResult RunSwitchingOnFullColoring();

// Couples sanity
TestUtils::TestResult FillOneGroup2VerticesWithSwitching();
#endif //SWITCHINGSINGLESUNITTESTS_H